package gui;

import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JComponent;

/**
 *
 * @author Alexis
 */
public class Explosion extends JComponent implements Animation {

    private int grosseur = 10;
    private final int GROSSEUR_MAX;
    private final int VITESSE;
    private Monde papa;
    private Thread threadExplosion = new Thread() {

        @Override
        public void run() {
            while (true) {
                if (grosseur > GROSSEUR_MAX) {
                    supprimer();
                }

                grosseur += VITESSE;

                repaint();

                try {
                    Thread.sleep(10);
                } catch (InterruptedException ex) {
                }
            }
        }
    };

    public Explosion(Monde monde, int x, int y, int grosseur, int vitesse) {
        papa = monde;
        GROSSEUR_MAX = grosseur;
        VITESSE = vitesse;

        setSize(GROSSEUR_MAX, GROSSEUR_MAX);
        setLocation(x - GROSSEUR_MAX / 2, y - GROSSEUR_MAX / 2);

        papa.add(this);

        startThread();
    }

    @Override
    public void paintComponent(Graphics g) {
        g.setColor(Color.RED);
            g.fillOval((GROSSEUR_MAX / 2) - (grosseur / 2), (GROSSEUR_MAX / 2) - (grosseur / 2), grosseur, grosseur);
            g.setColor(Color.ORANGE);
            g.fillOval((GROSSEUR_MAX / 2) - (grosseur / 2) + 5, (GROSSEUR_MAX / 2) - (grosseur / 2) + 5, grosseur - 10, grosseur - 10);
            g.setColor(Color.YELLOW);
            g.fillOval((GROSSEUR_MAX / 2) - (grosseur / 2) + 10, (GROSSEUR_MAX / 2) - (grosseur / 2) + 10, grosseur - 20, grosseur - 20);
    }

    private void startThread() {
        threadExplosion.start();
    }

    private void supprimer() {
        papa.remove(this);
    }
}